﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{   
    [DataObject]
    public class EventoBLL
    {
        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Insere(Evento a)
        {
            try
            {
                return EventoDAL.Insere(a.Nome,a.Dtinicio,a.Dtfim,a.Tipo,a.Usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao inserir entidade");
            }
        }

        public Evento Consultar(int codigo)
        {
            DSMPTUDO.T_EVENTODataTable EventoDT = EventoDAL.ConsultaPorCodigo(codigo);
            if(EventoDT.Count ==1)
                return (new Evento(codigo, EventoDT[0].nr_tipo,EventoDT[0].tx_nome,EventoDT[0].dt_inicio, EventoDT[0].dt_fim, EventoDT[0].tx_usuario));
            else 
            return null;
        }


        public bool Atualizar(Evento a)
        {
            try
            {
                return EventoDAL.Atualiza(a.Nome, a.Dtinicio, a.Dtfim, a.Tipo, a.Usuario, a.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar Entidade" + a.Nome);
            }

        }

        public bool Excluir(Evento a)
        {
            try
            {
                return EventoDAL.Remove(a.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Remover Entidade" + a.Nome);
            }

        }

        public static List<Evento> ConsultaTodos()
        {
            List<Evento> Lista = new List<Evento>();

            DSMPTUDO.T_EVENTODataTable eventoDT = EventoDAL.ConsultaTodos();
            for (int i = 0; i < eventoDT.Count; i++)
            {
                Evento e = new Evento(eventoDT[i].nr_codigo, eventoDT[i].nr_tipo, eventoDT[i].tx_nome, eventoDT[i].dt_inicio, eventoDT[i].dt_fim, eventoDT[i].tx_usuario);
                Lista.Add(e);
            }
            return Lista;
        }
    }
}
